#!/usr/bin/env bash
source .husky/_base

# 检查提交信息规范
function checkCommitMsg() {
    echo -e "\033[1;32m正在执行提交信息格式检查, 当前提交信息为：$(cat "$1")\033[0m"
    echo -e "\033[1;32m提交规范文档请参考：https://www.conventionalcommits.org/en/v1.0.0/\033[0m"
    if $HAS_PNPM; then
        pnpm exec commitlint --edit "$1"
    else
        npx --no-install commitlint --edit "$1"
    fi
}

# Git 暂存区、工作区备份处理
function backups() {
    echo -e '\033[1;32m正在执行暂存区、工作区备份处理~\033[0m'
    local msg
    msg="在进行提交之前于 $(date +"%Y-%m-%d %H:%M:%S") 进行了更改"

    # 是否存在初始化提交
    if ! git show-ref --quiet &>/dev/null; then
        echo -e '\033[1;31m暂未进行初始化提交，将忽略本次备份~\033[0m'
        return 0
    fi
    git stash push -m "$msg"
    git stash apply &>/dev/null
}

function main() {
    backups
    checkCommitMsg "$@"
}

execute main "$@"
